import Vue from 'vue';
import Vuex from 'vuex';
import loginApi from '@/http/loginApi';
Vue.use(Vuex);

export default new Vuex.Store({
  //数据仓库.但只做保存,不推荐修改state中的变量值,无法实现响应式
  //state里的意思是默认值,初始值,当刷新时候才会更新，所以第一次
  //进入的时候是没有item的
  state: {
    type: sessionStorage.getItem('type'),
    userInfo: JSON.parse(sessionStorage.getItem('userInfo')),
    menu_active:sessionStorage.getItem('menu_active'),
  },
  //做数据修改的,都是同步方法
  mutations: {
    SET_TYPE(state, type) {
      sessionStorage.setItem('type', type);
      state.type = type;
    },
    SET_MENUS_ACTIVE(state, val){
      sessionStorage.setItem('menu_active',val);
      state.menu_active=val;
    },
    SET_USERINFO(state, val) {
      sessionStorage.setItem('userInfo', JSON.stringify(val));
      state.userInfo = val;
    },
  },
  //异步处理的方法，否则也无法实现响应式
  actions: {
    GET_USERINFO_ACTIONS(context) {
      loginApi.getInfo().then(res => {
        context.commit('SET_USERINFO', res.data.data.loginUser);
      });
    },
  },
  //模块,不同功能模块，分块保存
  modules: {},
});
